<?php namespace Admin\Model;

use Hdphp\Model\Model;

class Admin extends Model{

	//数据表
	protected $table = "shop_admin";

	//完整表名
	protected $full = false;

	//自动验证
	protected $validate=array(
		//字段名: 表单字段名
		//验证方法: 函数或模型方法
		//验证条件: 1有字段时验证(默认)	2值不为空时验证  	3必须验证 
		//验证时间: 1 插入时验证		2更新时空时验证 	3全部情况验证 (默认)
		//array('字段名','验证方法','提示信息',验证条件,验证时间),
	);
	
	
	//自动完成
	protected $auto=array(
		//字段名: 表单字段名
		//处理方法: 函数或模型方法
		//方法类型: string(字符串 默认)  function(函数)  method(模型方法)
		//验证条件: 1有字段时处理(默认)	2值不为空时 3必须处理
		//处理时间: 1 插入时  2更新时 3全部情况 (默认)
		//array('字段名','处理方法','方法类型',验证条件,验证时间),
	);

	//登录验证
	public function login()
	{
		if(isset($_POST['code']) && strtoupper($_POST['code'])!==$_SESSION['code']){
			$this->error = '验证码错误';
			return false;
		}
		
		if(empty($_POST['username'])){
			$this->error = '账号不能为空';
			return false;
		}
		
		$admin = $this->where('username',$_POST['username'])->first();
		if(!$admin){
			$this->error = '账号不存在';
			return false;
		}
		
		if($admin['password']!==md5($_POST['password'])){
			$this->error = '密码错误';
			return false;
		}
		
		//保存用户信息到数据库
		$data['adimn_id'] = $admin['admin_id'];
		$data['login_at'] = time();
		$data['login_ip'] = $_SERVER['REMOTE_ADDR'];
		$this->save($data);
		$_SESSION['admin_id']=$admin['admin_id'];
        $_SESSION['username']=$admin['username'];
		return true;
		
	}
	
	//修改密码验证
	public function changePassword()
	{
		$this->validate = array(
			array('password','require','密码不能为空',3,3),
			array('password','confirm:password_c','两次密码不一致',3,3),
			array('old_password','require','原始密码不能为空',3,3),
		);
		
		//旧密码的判断
		$old_password = $this->where('admin_id',$_SESSION['admin_id'])->pluck('password');
		if(md5($_POST['old_password'])!==$old_password){
			$this->error = '原始密码输入错误';
			return false;
		}
		
		//更新新密码
		
		if($this->create()){
			//需要更新主键值
			$_POST['admin_id'] = $_SESSION['admin_id'];
			//密码加密
			$_POST['password'] = md5($_POST['password']);
			
			//清楚旧的密码
			unset($_POST['old_password']);
			unset($_POST['password_c']);
			
			//更新密码
			return $this->save($_POST);
			
			 
			 
			 
		}
		
		
		
	}
	
	
	
	
	

}